Advanced Architecting on AWS
Organizations โข Control Tower โข SCPs โข Resource Control Policies
๐ Security Isolation
Blast radius containment โ compromise in dev doesn't affect prod
๐ฐ Cost Allocation
Per-account billing, chargeback to business units
๐ Service Limits
Each account has independent quotas โ avoid throttling
๐๏ธ Governance
Separate compliance boundaries (PCI, HIPAA, FedRAMP)
| Aspect | SCP Behavior |
|---|---|
| Type | Permissions guardrails (deny or allow lists) |
| Applies to | All IAM principals in member accounts (not management account) |
| Effect | Sets maximum available permissions (does NOT grant permissions) |
| Inheritance | Applied at OU level, inherited by child OUs and accounts |
| Deny strategy | Explicit Deny in SCP overrides any Allow in IAM policies |
| Pattern | Mechanism | Use Case |
|---|---|---|
| IAM Role Assumption | sts:AssumeRole with trust policy | Admin access to member accounts |
| Resource-Based Policy | Principal ARN in resource policy | Cross-account S3, KMS, SNS access |
| AWS RAM | Resource Access Manager sharing | Share subnets, Transit Gateways, resolvers |
| Organizations Trust | org-id or OU conditions | Org-wide access to shared services |
# List accounts in the organization aws organizations list-accounts --query 'Accounts[].{Id:Id,Name:Name,Status:Status}' # List OUs under root aws organizations list-roots --query 'Roots[0].Id' --output text aws organizations list-organizational-units-for-parent --parent-id r-xxxx # List SCPs attached to an OU aws organizations list-policies-for-target --target-id ou-xxxx --filter SERVICE_CONTROL_POLICY # Describe a specific SCP aws organizations describe-policy --policy-id p-xxxx
๐ข Management Account
Analogy: The CEO's office โ oversees everything but never does the actual work. Only used for billing and Organization management. Never deploy workloads here.
๐๏ธ Organizational Units (OUs)
Analogy: Floors in the building โ Dev floor, Prod floor, Security floor. Group accounts by purpose. Policies apply to entire floors.
๐ Guardrails (Controls)
Analogy: Building safety codes โ fire exits must exist (mandatory), some floors can't have kitchens (preventive), and smoke detectors alert security (detective). 750+ managed controls available.
๐ญ Account Factory
Analogy: A cookie cutter for new offices โ every new account gets the same setup: VPC, IAM roles, logging, security baseline. Consistent, repeatable, fast.
๐ Log Archive Account
Analogy: The building's CCTV control room โ all CloudTrail logs, Config records, and audit trails flow here. Immutable, centralized, nobody can tamper with the recordings.
๐ก๏ธ Audit (Security) Account
Analogy: The security guard booth โ cross-account read access to all accounts for security team. Security Hub, GuardDuty findings aggregate here. The watchtower.
๐ Network Account (Shared)
Analogy: The building's utility room โ Transit Gateway, Direct Connect, DNS all live here. Shared via RAM. Other accounts connect but don't manage networking.
๐ Baseline (Config/Remediation)
Analogy: Building inspections โ AWS Config rules continuously check compliance. Auto-remediation fixes violations. Like having automated building inspectors that also fix issues.
Q1: An SCP with an explicit Deny on s3:DeleteBucket is attached to a Production OU. A user in a prod account has an IAM policy with Allow on s3:*. Can they delete a bucket?
A) Yes, IAM Allow overrides B) No, SCP Deny wins C) Depends on resource policy D) Only in management account
Q2: What is the key difference between SCPs and Resource Control Policies (RCPs)?
A) SCPs are preventive, RCPs are detective B) SCPs control what principals can do, RCPs control who can access resources C) RCPs replace SCPs D) SCPs apply to resources, RCPs apply to users
Organizations
Management account + OUs + member accounts. Consolidated billing. Never run workloads in mgmt account.
SCPs & RCPs
SCPs = max permissions boundary for principals. RCPs = resource access controls. Both are guardrails, not grants.
Control Tower
Automated landing zone. Account Factory. 750+ managed controls. Auto-enrollment (2025).
Cross-Account
AssumeRole, resource policies, RAM sharing. Use PrincipalOrgID conditions for org-scoped trust.